package com.dynabook.ems.constant;

import com.dynabook.ems.model.enums.MailEnum;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

/**
 * 邮件模板管理类
 */
@Component
public class EmailTemplateManager {

    @Value("${spring.ems_url}")
    private String emsUrl;
    
    // 邮件模板缓存
    private final Map<MailEnum, String> mailTemplates = new HashMap<>();
    
    /**
     * 初始化邮件模板
     */
    public void init() {
        // 初始化IMPORT邮件模板
        mailTemplates.put(MailEnum.IMPORT, 
            "<p>Dear All</p>"+
            "<p>大家好, 以下样品已入库, 如果有需要可通过申请再来领取</p>"+
            "<p>点击<a style=\"font-size:20px;\" href=\""+ emsUrl +"\">此链接</a>确认详情</p>"
        );
        
        // 初始化FLOW邮件模板
        mailTemplates.put(MailEnum.FLOW, 
            "<p>Dear All</p>"+
            "<p>大家好, 以下是流程通知</p>"+
            "<p>点击<a style=\"font-size:20px;\" href=\""+ emsUrl +"\">此链接</a>确认详情</p>"
        );
        
        // 初始化APPLY邮件模板
        mailTemplates.put(MailEnum.APPLY, 
            "<p>Dear All</p>"+
            "<p>大家好, 有新的申请需要处理</p>"+
            "<p>点击<a style=\"font-size:20px;\" href=\""+ emsUrl +"\">此链接</a>确认详情</p>"
        );
        
        // 初始化REJECT邮件模板
        mailTemplates.put(MailEnum.REJECT, 
            "<p>Dear All</p>"+
            "<p>大家好, 您的申请已被拒绝</p>"+
            "<p>点击<a style=\"font-size:20px;\" href=\""+ emsUrl +"\">此链接</a>确认详情</p>"
        );
        
        // 初始化CHECK邮件模板
        mailTemplates.put(MailEnum.CHECK, 
            "<p>Dear All</p>"+
            "<p>大家好, 请检查以下信息</p>"+
            "<p>点击<a style=\"font-size:20px;\" href=\""+ emsUrl +"\">此链接</a>确认详情</p>"
        );
    }
    
    /**
     * 根据邮件类型获取邮件模板
     * @param mailType 邮件类型
     * @return 邮件模板内容
     */
    public String getMailTemplate(MailEnum mailType) {
        // 如果模板为空，先初始化
        if (mailTemplates.isEmpty()) {
            init();
        }
        return mailTemplates.getOrDefault(mailType, "");
    }
    
    /**
     * 邮件发件人
     */
    public static final String MAIL_FROM = "ems_admin@dbh.dynabook.com";
}